import time
from concurrent.futures.thread import ThreadPoolExecutor

import requests


def download_picture(pic_url):
    resp = requests.get(pic_url)
    if resp.status_code == 200:
        filename = pic_url[pic_url.rfind('/') + 1:]
        with open(f'images/{filename}', 'wb') as file:
            file.write(resp.content)


def main():
    pool = ThreadPoolExecutor(max_workers=32)
    futures = []
    key = 'e8c5524dd2a365f20908ced735f8e480'
    start = time.time()
    for page in range(1, 11):
        resp = requests.get(
            url=f'http://api.tianapi.com/meinv/index?key={key}&num=20&page={page}'
        )
        result = resp.json()
        if result['code'] == 200:
            for beauty in result['newslist']:
                f = pool.submit(download_picture, beauty['picUrl'])
                futures.append(f)
    for f in futures:
        f.result()
    end = time.time()
    print(f'下载时间：{end - start:.3f}秒')
    pool.shutdown()


if __name__ == '__main__':
    main()
